<?php

class bancoDadosUsuario {

    private $host = "mysql05.syncro.inf.br";
    private $dbname = "syncro14";
    private $user = "syncro14";
    private $password = "Muzzolon01";
    private $nome;
    private $cpf;
    private $rg;
    private $datanas;
    private $email;
    private $telefone;
    private $rua;
    private $numero;
    private $complemento;
    private $bairro;
    private $cidade;
    private $cep;
    private $pass;
    private $conpass;
    private $fun;
    private $id;

    public function gravar($dados) {
        $temp = explode("§", $dados);
        $this->nome = $temp[0];
        $this->cpf = $temp[1];
        $this->rg = $temp[2];
        $this->datanas = $temp[3];
        $this->email = $temp[4];
        $this->telefone = $temp[5];
        $this->rua = $temp[6];
        $this->numero = $temp[7];
        $this->complemento = $temp[8];
        $this->bairro = $temp[9];
        $this->cidade = $temp[10];
        $this->cep = $temp[11];
        $this->pass = $temp[12];
        $this->conpass = $temp[13];
        $this->fun = $temp[14];
        $this->id = $temp[15];




        if ($this->nome == '' || $this->nome == null || strlen($this->nome) <= 6) {
            return "0+Nome+ ";
        } else {
            if ($this->cpf == '' || $this->cpf == null || strlen($this->cpf) != 14) {
                return "0+Cpf + ";
            } else {
                if ($this->rg == '' || $this->rg == null || strlen($this->rg) != 11) {
                    return "0+Rg+ ";
                } else {
                    if ($this->datanas == '' || $this->datanas == null || strlen($this->datanas) != 10) {
                        return "0+Data de Nascimento+";
                    } else {
                        $temp = explode("/", $this->datanas);

                        if ($temp[0] < 1 || $temp[0] > 31) {
                            return "2+ Dia";
                        } else {
                            if ($temp[1] < 1 || $temp[1] > 12) {
                                return "2+Mes";
                            } else {
                                if ($temp[2] < 1900 || $temp[2] > 2099) {
                                    return "2+Ano";
                                } else {

                                    $this->datanas = $temp[2] . '-' . $temp[1] . '-' . $temp[0];

                                    $mail_correcto = 0;
                                    //verifico umas coisas 
                                    if ((strlen($this->email) >= 6) && (substr_count($this->email, "@") == 1) && (substr($this->email, 0, 1) != "@") && (substr($this->email, strlen($this->email) - 1, 1) != "@")) {
                                        if ((!strstr($this->email, "'")) && (!strstr($this->email, "\"")) && (!strstr($this->email, "\\")) && (!strstr($this->email, "\$")) && (!strstr($this->email, " "))) {
                                            //vejo se tem caracter . 
                                            if (substr_count($this->email, ".") >= 1) {
                                                //obtenho a terminação do dominio 
                                                $term_dom = substr(strrchr($this->email, '.'), 1);
                                                //verifico que a terminação do dominio seja correcta 
                                                if (strlen($term_dom) > 1 && strlen($term_dom) < 5 && (!strstr($term_dom, "@"))) {
                                                    //verifico que o de antes do dominio seja correcto 
                                                    $antes_dom = substr($this->email, 0, strlen($this->email) - strlen($term_dom) - 1);
                                                    $caracter_ult = substr($antes_dom, strlen($antes_dom) - 1, 1);
                                                    if ($caracter_ult != "@" && $caracter_ult != ".") {
                                                        $mail_correcto = 1;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    if (!$mail_correcto) {
                                        return "0+Email+ ";
                                    } else {

                                        if ($this->telefone != '' && strlen($this->telefone) != 16) {
                                            return"0+Telefone+ ";
                                        } else {


                                            if ($this->rua == '' || $this->rua == null || strlen($this->rua) < 5) {
                                                return "0+Rua+ ";
                                            } else {
                                                if ($this->numero != '' && $this->numero <= 1) {
                                                    return "0+N&uacute;mero+ ";
                                                } else {
                                                    if ($this->complemento != '' && strlen($this->complemento) < 3) {
                                                        return '0+Complemento+ ';
                                                    } else {
                                                        if ($this->bairro == '' || $this->bairro == null || strlen($this->bairro) < 3) {
                                                            return '0+Bairro+ ';
                                                        } else {

                                                            if ($this->cidade == '' || $this->cidade == null || strlen($this->cidade) < 3) {
                                                                return '0+Cidade+ ';
                                                            } else {
                                                                if ($this->cep == '' || $this->cep == null || strlen($this->cep) < 10) {
                                                                    return '0+Cep+ ';
                                                                } else {
                                                                    if ($this->pass == '' || $this->pass == NULL) {
                                                                        return '3+Preencha o Campo Senha+ ';
                                                                    } else {
                                                                        if ($this->pass != $this->conpass) {
                                                                            return '3+Senhas Digitadas Nao Sao Iguais+ ';
                                                                        } 
                                                                        else {
                                                                            $temp = '1+Salvo Com Sucesso!+<a  href="#" onclick="opcao(' . "'usuario','incluir'" . ')" title="Adicionar Usuario"><img src="./imagens/padrao/add.png" name="novo"  border="0"   class="botaform"/></a>';

                                                                            $pdo = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->dbname . '', $this->user, $this->password);

                                                                            if ($this->fun == 0) {
                                                                                $pdo->exec("INSERT INTO usuario (nome,cpf,rg,dataNasc,email,telefone,rua,numero,complemento,bairro,cidade,cep,pass)
                                                                      VALUES ('" . $this->nome . "', '" . $this->cpf . "', '" . $this->rg . "', '" . $this->datanas . "', '" . $this->email . "', '" . $this->telefone . "', '" . $this->rua . "', '" . $this->numero . "', '" . $this->complemento . "', '" . $this->bairro . "', '" . $this->cidade . "', '" . $this->cep . "', '" . $this->pass . "')")
                                                                                        or $temp = '0+Erro ao Salvar no Banco.';
                                                                                $pdo = null;
                                                                            } else {
                                                                                $pdo->exec("UPDATE  `usuario` SET  `nome` =  '" . $this->nome . "',
                                                                                                `cpf` =  '" . $this->cpf . "',
                                                                                                `rg` =  '" . $this->rg . "',
                                                                                                `dataNasc` =  '" . $this->datanas . "',
                                                                                                `email` =  '" . $this->email . "',
                                                                                                `telefone` =  '" . $this->telefone . "',
                                                                                                `rua` =  '" . $this->rua . "',
                                                                                                `numero` =  '" . $this->numero . "',
                                                                                                `complemento` =  '" . $this->complemento . "',
                                                                                                `bairro` =  '" . $this->bairro . "',
                                                                                                `cidade` =  '$this->cidade',
                                                                                                `pass` =  '$this->pass',
                                                                                                `cep` =  '" . $this->cep . "' WHERE  `idUsuario` ='" . $this->id . "'")
                                                                                        or $temp = "0+Falha ao Atualizar dados";
                                                                                $pdo = null;
                                                                            }
                                                                            return $temp;
                                                                        }
                                                                            
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    public function listar($dados) {
        $temp = explode("§", $dados);
        $pdo = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->dbname . '', $this->user, $this->password);
        $retorno = '<table  id="borda">
                        <tr align="center">
                            <th scope="col"id="bordaL">C&oacute;digo:</th>
                            <th scope="col"id="bordaL">Nome:</th>
                            <th scope="col"id="bordaL">Cpf:</th>
                            <th scope="col"id="bordaL">Data De Nascimento:</th>
                            <th scope="col"id="bordaL">Email:</th>

                        </tr>';
        if ($temp[0] == 0) {
            if ($temp[1] == 'todos' || $temp[1] == 'TODOS') {
                $result = $pdo->query('SELECT `idUsuario`,`nome`,`cpf`,`dataNasc`,`email` FROM `usuario`', PDO::FETCH_ASSOC);
                if ($result->rowCount() < 1) {
                    return '<p ><b id="erro">Nao encontrado.</b></p>';
                } else {
                    $cont = 0;
                    $cor;
                    while ($usuario = $result->fetch()) {
                        if ($cont % 2 == 0) {
                            $cor = '#FFF';
                        } else {
                            $cor = '#CCC';
                        }
                        $cont++;
                        $retorno.='                        <tr align="center" bgcolor="' . $cor . '">
                            <td id="bordaL">&nbsp;' . $usuario['idUsuario'] . '</td>
                            <td id="bordaL">&nbsp;' . $usuario['nome'] . '</td>
                            <td id="bordaL">&nbsp;&nbsp;' . $usuario['cpf'] . '</td>
                            <td id="bordaL">&nbsp;' . $this->formataData($usuario['dataNasc']) . '</td>
                            <td id="bordaL">&nbsp;' . $usuario['email'] . '</td>
                            <td id="bordaL">&nbsp;
                                <input type="button" value="Editar" onClick="editarDado(' . "'usuario'" . ',' . $usuario['idUsuario'] . ')"/>
                                    <input type="button" value="XML" onClick="gerarXml(' . "'usuario'" . ',' . $usuario['idUsuario'] . ')"/>
                                <input type="button" value="Excluir" onClick="excluir(' . "'usuario'" . ',' . $usuario['idUsuario'] . ')"/></td>
                        </tr>';
                    }
                    return $retorno . '</table>';
                }
            } else {
                $result = $pdo->query("SELECT `idUsuario`,`nome`,`cpf`,`dataNasc`,`email` FROM `usuario` WHERE `Nome` LIKE '%" . $temp[1] . "%'", PDO::FETCH_ASSOC);
                if ($result->rowCount() < 1) {
                    return '<p ><b id="erro">Nao encontrado.</b></p>';
                } else {
                    $cont = 0;
                    $cor;
                    while ($usuario = $result->fetch()) {
                        if ($cont % 2 == 0) {
                            $cor = '#FFF';
                        } else {
                            $cor = '#CCC';
                        }
                        $cont++;
                        $retorno.='                        <tr align="center" bgcolor="' . $cor . '">
                            <td id="bordaL">&nbsp;' . $usuario['idUsuario'] . '</td>
                            <td id="bordaL">&nbsp;' . $usuario['nome'] . '</td>
                            <td id="bordaL">&nbsp;&nbsp;' . $usuario['cpf'] . '</td>
                            <td id="bordaL">&nbsp;' . $this->formataData($usuario['dataNasc']) . '</td>
                            <td id="bordaL">&nbsp;' . $usuario['email'] . '</td>
                            <td id="bordaL">&nbsp;
                                <input type="button" value="Editar" onClick="editarDado(' . "'usuario'" . ',' . $usuario['idUsuario'] . ')"/>
                                    <input type="button" value="XML" onClick="gerarXml(' . "'usuario'" . ',' . $usuario['idUsuario'] . ')"/>
                                <input type="button" value="Excluir" onClick="excluir(' . "'usuario'" . ',' . $usuario['idUsuario'] . ')"/></td>
                        </tr>';
                    }
                    return $retorno . '</table>';
                }
            }
        } else {
            if ($temp[0] == 1) {

                $result = $pdo->query("SELECT `idUsuario`,`nome`,`cpf`,`dataNasc`,`email` FROM `usuario` WHERE `idUsuario`= " . $temp[1] . "", PDO::FETCH_ASSOC);
                if ($result->rowCount() < 1) {
                    return '<p ><b id="erro">Nao encontrado.</b></p>';
                } else {
                    $cont = 0;
                    $cor;
                    while ($usuario = $result->fetch()) {
                        if ($cont % 2 == 0) {
                            $cor = '#FFF';
                        } else {
                            $cor = '#CCC';
                        }
                        $cont++;
                        $retorno.='                        <tr align="center" bgcolor="' . $cor . '">
                            <td id="bordaL">&nbsp;' . $usuario['idUsuario'] . '</td>
                            <td id="bordaL">&nbsp;' . $usuario['nome'] . '</td>
                            <td id="bordaL">&nbsp;&nbsp;' . $usuario['cpf'] . '</td>
                            <td id="bordaL">&nbsp;' . $this->formataData($usuario['dataNasc']) . '</td>
                            <td id="bordaL">&nbsp;' . $usuario['email'] . '</td>
                            <td id="bordaL">&nbsp;
                                <input type="button" value="Editar" onClick="editarDado(' . "'usuario'" . ',' . $usuario['idUsuario'] . ')"/>
                                    <input type="button" value="XML" onClick="gerarXml(' . "'usuario'" . ',' . $usuario['idUsuario'] . ')"/>
                                <input type="button" value="Excluir" onClick="excluir(' . "'usuario'" . ',' . $usuario['idUsuario'] . ')"/></td>
                        </tr>';
                    }
                    return $retorno . '</table>';
                }
            }
        }

        $pdo = null;
    }

    public function carregaformulario($id) {
        $pdo = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->dbname . '', $this->user, $this->password);

        $result = $pdo->query("SELECT `nome`,`cpf`,`rg`,`dataNasc`,`email`,`telefone`,`rua`,`numero`,`complemento`,`bairro`,`cidade`,`cep`,`pass` FROM `usuario` WHERE `idUsuario`= " . $id . "", PDO::FETCH_ASSOC);
        $usuario = $result->fetch();
        return $usuario['nome'] . '§' . $usuario['cpf'] . '§' . $usuario['rg'] . '§' . $this->formataData($usuario['dataNasc']) . '§' .
                $usuario['email'] . '§' . $usuario['telefone'] . '§' . $usuario['rua'] . '§' . $usuario['numero'] . '§' .
                $usuario['complemento'] . '§' . $usuario['bairro'] . '§' . $usuario['cidade'] . '§' . $usuario['cep'] . '§' . $usuario['pass'] . '§§1§' . $id;
    }

    public function apagar($valor) {
        $temp = '1+Usuario Excluido Com Sucesso.';
        $pdo = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->dbname . '', $this->user, $this->password);

        $pdo->exec("DELETE FROM `usuario` WHERE  `idUsuario` ='" . $valor . "'")
                or $temp = "0+Falha ao Apagar dados";
        $pdo = null;

        return $temp;
    }

    public function gerarXml($valor) {
        $pdo = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->dbname . '', $this->user, $this->password);

        $result = $pdo->query("SELECT `nome`,`cpf`,`rg`,`dataNasc`,`email`,`telefone`,`rua`,`numero`,`complemento`,`bairro`,`cidade`,`cep`,`pass` FROM `usuario` WHERE `idUsuario`= " . $valor . "", PDO::FETCH_ASSOC);
        $usuario = $result->fetch();

        $dom = new DOMDocument("1.0", "iso-8859-1");
        $dom->preserveWhiteSpace = false;
        $dom->formatOutput = true;

        $root = $dom->createElement("Usuario");
        $nome = $dom->createElement("nome", $usuario['nome']);
        $cpf = $dom->createElement("cpf", $usuario['cpf']);
        $rg = $dom->createElement("rg", $usuario['rg']);
        $dataNasc = $dom->createElement("dataNasc", $this->formataData($usuario['dataNasc']));
        $email = $dom->createElement("email", $usuario['email']);
        $telefone = $dom->createElement("telefone", $usuario['telefone']);
        $rua = $dom->createElement("rua", $usuario['rua']);
        $numero = $dom->createElement("numero", $usuario['numero']);
        $complemento = $dom->createElement("complemento", $usuario['complemento']);
        $bairro = $dom->createElement("bairro", $usuario['bairro']);
        $cidade = $dom->createElement("cidade", $usuario['cidade']);
        $cep = $dom->createElement("cep", $usuario['cep']);
        $pass = $dom->createElement("pass", $usuario['pass']);

        $root->appendChild($nome);
        $root->appendChild($cpf);
        $root->appendChild($rg);
        $root->appendChild($dataNasc);
        $root->appendChild($email);
        $root->appendChild($telefone);
        $root->appendChild($rua);
        $root->appendChild($numero);
        $root->appendChild($complemento);
        $root->appendChild($bairro);
        $root->appendChild($cidade);
        $root->appendChild($cep);
        $root->appendChild($pass);

        $dom->appendChild($root);
        $dom->save("D:\\" . $usuario['nome'] . ".xml");
        return "0+" . $usuario['nome'];
    }

    private function formataData($data) {
        $temp = explode("-", $data);
        return $temp[2] . '/' . $temp[1] . '/' . $temp[0];
    }

    public function importarXml($dados) {
        $errop;
        if (file_exists($dados)) {
            $xml = simplexml_load_file($dados);
            $pdo = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->dbname . '', $this->user, $this->password);

            $result = $pdo->query("SELECT * FROM `usuario` WHERE nome like '" . $xml->nome . "'", PDO::FETCH_ASSOC);
            if ($result->rowCount() != 0) {
                $dado = "Ja exixte o Usuario Cadastrado No Sistema.";
            } else {

                $dado = $xml->nome . '§' .
                        $xml->cpf . '§' .
                        $xml->rg . '§' .
                        $xml->dataNasc . '§' .
                        $xml->email . '§' .
                        $xml->telefone . '§' .
                        $xml->rua . '§' .
                        $xml->numero . '§' .
                        $xml->complemento . '§' .
                        $xml->bairro . '§' .
                        $xml->cidade . '§' .
                        $xml->cep . '§' .
                        $xml->pass . '§' .
                        '0§';
                $dado = $this->gravar($dado);
                if ($dado == 1) {
                    $dado = "Importado com Sucesso";
                }
            }
        } else {
            $dado = 'Nao foi possivel localizar o caminho: ' . $dados;
        }
        return $dado;
    }

}

?>
